'''
文件1：英语srt字幕
文件2：英语+翻译
文件3：英语字幕
文件4：翻译
merged_file：文件3与文件4的合并
output：文件2按照规律插入到文件1中

对应关系支持1对多 默认文件1中1行对应文件2多行
'''

def read_file(filename):
    # 读取文件内容并返回一个包含每一行内容的列表
    with open(filename, 'r', encoding='utf-8') as file:
        return file.readlines()

def modify_file(file1_content, file2_content,line_num=2):
    idx = 0
    count_digit=0
    while idx < len(file1_content):
        line = file1_content[idx].strip()
        if line.isdigit():
            # 匹配到与之对应的行 对相应的行【start，end】进行插入 匹配关系
            start_idx = count_digit*line_num

            # 检查索引是否有效，以及是否可以找到对应的文件2内容
            if start_idx < 0 or start_idx + 1 >= len(file2_content):
                break

            # 根据索引，提取文件2中的对应内容，并替换文件1中的第三行
            end_idx = start_idx + 1
            print(start_idx,end_idx)
            print("file1",file1_content[idx+2].strip())
            print("file2",file2_content[start_idx:end_idx + 1])
            print()
            modified_lines = file2_content[start_idx:end_idx + 1]
            file1_content[idx + 2] = ''.join(modified_lines)

            # 跳过下一个整数行，因为对应的内容已经被修改
            idx += line_num+1
            count_digit+=1
        else:
            # 非整数行，继续下一行
            idx += 1

def write_file(filename, content):
    # 将修改后的文件内容写入到指定文件中
    with open(filename, 'w', encoding='utf-8') as file:
        file.writelines(content)


def add_empty_line(file_content):
    if len(file_content) !=0:
        file_content.append('')

def merge_files(file3_content, file4_content):
    # 检查文件3和文件4的行数是否相同
    if len(file3_content) != len(file4_content):
        raise ValueError("文件3和文件4的行数不相同，无法合并。")
    #最后一行后添加空行,为了使得最后一行合并可以换行
    # print(len(file3_content))
    # file3_content[-1] = file3_content[-1]+"\n"
    # file4_content[-1] = file4_content[-1]+'\n'

    merged_content = []
    for i in range(len(file3_content)):
        merged_content.append("♪ "+file3_content[i].strip()+" ♪\n")
        merged_content.append(file4_content[i])
        print(file3_content[i])
    return merged_content




def test_merged(file3_path,file4_path):

    file3_content = read_file(file3_path)
    file4_content = read_file(file4_path)

    merged_content = merge_files(file3_content, file4_content)

    output_file_path = "merged_file.txt"
    write_file(output_file_path, merged_content)

    print("文件3和文件4内容已合并并保存到 merged_file.txt 中。")


def test_modify(file1_path,file2_path):


    # 读取文件1和文件2的内容
    file1_content = read_file(file1_path)
    file2_content = read_file(file2_path)

    # 修改文件1的内容，根据文件2的内容
    modify_file(file1_content, file2_content)

    # 将修改后的文件1内容保存到新文件中
    output_file_path = "output.txt"
    write_file(output_file_path, file1_content)

    print("文件内容已修改并保存到 output.txt 中。")


if __name__ == "__main__":
    file1_path = "file1.srt" # 英文字幕
    file2_path = "file2.txt" # 中英文翻译
    file3_path = "file3.txt" # 英文（无时间轴）
    file4_path = "file4.txt" # 中文（无时间轴）
    '''
    file2_path 可以为file3_path 和 file4_path合并的merged_file.txt
    '''
    test_merged(file3_path,file4_path)
    test_modify(file1_path,file2_path)
